package _022_2_15

func merge(nums1 []int, m int, nums2 []int, n int) {
	for i := 0; i < m; i++ {
		nums1[i+m] = nums1[i]
	}

	nums3 := nums1[m:]

	i1, i2 := 0, 0
	i := 0
	for ; i1 < len(nums3) && i2 < len(nums2); i++ {

		if nums3[i1] <= nums2[i2] {
			nums1[i] = nums3[i1]

			i1++
		} else {
			nums1[i] = nums2[i2]

			i2++
		}
	}

	n3 := nums3
	nn := i1
	if i2 < len(nums2) {
		n3 = nums2
		nn = i2
	}

	for i < len(n3) {
		nums1[i] = n3[nn]
		i++
		nn++
	}

}
